Custom integrated circuits are widely used today in the electronics industry. The demand for custom integrated circuits is rapidly increasing because of a dramatic growth in the demand for highly specific consumer electronics and a trend towards increased product functionality. Also, the use of custom integrated circuits is advantageous because they reduce system complexity and, therefore, lower manufacturing costs, increase reliability and increase system performance.
There are numerous types of custom integrated circuits. One type is programmable logic devices (PLDs) including field programmable gate arrays (FPGAs). FPGAs are designed to be programmed by the end user using special-purpose equipment. Programmable logic devices are, however, undesirable for many applications because they operate at relatively slow speeds, have relatively low capacity, and have relatively high cost per chip.
Another type of custom integrated circuit is application-specific integrated circuits (ASICs) including gate-array based and cell-based ASICs which are often referred to as "semicustom" ASICs. Semicustom ASICs are programmed by either a) defining the placement and interconnection of a collection of predefined logic cells which are used to create a mask for manufacturing the IC (cell-based) or b) defining the final metal interconnection layers to lay over a predefined pattern of transistors on the silicon (gate-array-based). Semicustom ASICs can achieve high performance and high integration but can be undesirable because they have relatively high design costs, have relatively long design cycles (time it takes to transform given functionality into a mask), and relatively low predictability of integrating into an overall electronic system.
Another type of custom integrated circuit is referred to as application-specific standard parts (ASSPs) which are non-programmable integrated circuits that are designed for specific applications. These devices are typically purchased off-the-shelf from integrated circuit suppliers. ASSPs have predetermined architectures and input and output interfaces. They are typically designed for specific products and, therefore, have short product lifetimes.
Yet another type of custom integrated circuit is referred to as a software-only design. This type uses a general purpose processor and a high-level compiler. The end user programs the desired functions with a high-level language. The compiler generates the machine code that instructs the processor to perform the desired functions. Software-only designs typically require general-purpose hardware to perform the desired function. In addition, software only designs have relatively poor performance because the hardware is not optimized to perform the desired functions.
FIG. 1 illustrates a flow chart of a prior art custom integrated circuit design cycle 10. The first step 12 is to design the system at a functional level. A system partitioning step 14 partitions the functional design into a plurality of tasks. A hardware implementation step 16 selects the hardware for the design. A gate level design step 18 configures the logic to implement the hardware design. A netlist generating step 20 produces a netlist of the gate level design. A physical design step 22 determines the geometry of the integrated circuit. A fabrication and manufacturing step 24 generates the custom integrated circuit.
If a general purpose processor (not shown) is used in the custom integrated circuit, additional steps are required. There is a software implementation step 26 where the functional design is coded in software. A hardware/software coverification step 28 verifies the hardware and software implementations. There is also a system integration step 30 that links the hardware and software steps. These steps can add more than 30% to the design cycle.
Today, the custom integrated circuit design cycle 10 typically takes 6-15 months to complete and may cost between one and three million dollars. There are many transformation, analysis and verification steps in the design cycle 10. The design cycle 10 also has potentially time consuming and expensive iterations. Customer modifications or problems occurring during the design cycle may require costly redesign and long delays.
Because of the trend towards increased product functionality in the electronic industry, the complexity of custom integrated circuits is rapidly increasing. The level of skill required to generate custom integrated circuits and the design cycle time is also rapidly increasing. Consequently, prior art methods of generating custom integrated circuits are becoming increasingly inadequate. There currently exists a need for a method of generating application specific integrated circuits that reduces the design cycle time of custom integrated circuits. There also exists a need for a method of generating application specific integrated circuits that allows for modification during the design cycle.